Virtualization allows multiplexing of the underlying host machine between different virtual machines. The host computer allocates a certain amount of its resources to each of the virtual machines. Each virtual machine is then able to use the allocated resources to execute applications, including operating systems (referred to as guest operating systems). The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM), a kernel-based hypervisor or a host operating system. The hypervisor emulates the underlying hardware of the host computer, making the use of the virtual machine transparent to the guest operating system and the user of the computer.
In some systems, the host is a centralized server that is partitioned into multiple virtual machines to provide virtual desktops to the users. The centralized host manages the allocation of disk storage to the virtual machines. Some hosts pre-allocate a fixed amount of disk storage to each virtual machine. However, a virtual machine often expands and outgrows the pre-allocated storage space. One reason for the expansion is a growing number of swapped pages written to a disk by a virtual machine. Swapped pages are written to a disk when a guest operating system of the virtual machine needs to transfer pages from main memory to disk, in order to clean up the main memory for currently active applications. Presently, there is no efficient mechanism for removing swapped pages created by virtual machines. As a result, the accumulation of the swapped pages in the disk storage can affect the performance of virtual machines and reduce the speed of disk backup operations.